# 第3节 运算符和数据类型转换习题和作业 ## (一) 习题----------------------------- ## 习题1. 判断是否登录 1. 声明变量用来表示登录的状态 2. 若状态为true, 在控制台打印"你已登录", 否则打印"你还没登录, 请先登录" ```html var login = true; if(login){ console.log('你已登录'); } else{ console.log('你还没登录,请先登录'); } ``` ## 习题2. 说出以下代码运行结果 ```html 结果:1111 ``` ## 习题3. 数字类型转换 把其他类型转数字类型有哪些方法? 答: 1.Number(); ​ 2.*1; 完成以下练习题 ```javascript var str1 = '我爱web'; Number(str1)的值是(NaN) var str2 = '08'; Number(str2)的值是(08) var str3 = ''; Number(str3)的值是(0); var str4 = ' '; Number(str4)的值是(0); var age; Number(age)的值是(NaN); var empty = null; Number(null)的值是(0); var person = {}; Number(person)的值是(NaN); person = { name: '张三', age: 18; } Number(person)的值是(NaN); var isLogin = true; Number(isLogin)的值是(1); isLogin = false; Number(isLogin)的值是(0); ``` ## 习题4. 转布尔练习题 其它数据类型转布尔数据类型的方法有哪些? 答: Boolean(); ​ 变量前加!! 其它数据类型转布尔类型练习题 ```java !!Infinity的值是(true) !!1的值是(true) !!NaN的值是(false) !!0.5的值是(true) !!0的值是(false) !!'' 的值是(false) !!' ' 的值是(true) !!'JavaScript' 的值是(true) var isLogin; !!isLogin 的值是(false); var obj = null; !!obj 的值是(false); obj = {}; !!obj 的值是(true); obj = {name:'zs'}; !!obj 的值是(true); ``` ## 习题5. 其它类型转字符串 其它数据类型转字符串类型的方法有哪些? 答: String(); ​ 变量名+'' ## 习题6: 电话号码判断 1. 声明变量phone, 接收用户的输入 2. 如果输入为空, 弹出手机号码不能为空 3. 如果输入电话号码不足11位, 弹出电话号码不正确 4. 如果输入的号码无法转成数字, 弹出电话号码不正确 5. 以上条件都满足, 弹出手机号码正确 ```html var phone = prompt(); if(phone == ''){ alert('手机号码不能为空'); } else if(phone.length < 11){ alert('电话号码不正确') } else if(isNaN(phone*1)){ alert('电话号码不正确') } else{ alert('手机号码正确'); } ``` ## 习题7: 算术填空题 ```html ``` ## 习题8. 算术填空题(口算) ```java 1. var num1 = 0; !num1; // 式子的值是(true) 2. var num2 = 100; !num2; // 式子的值是(false) !!num2; // 式子的值是(true) 3. var num3 = NaN; !num3; // 式子的值是(true) 4. var str1 = ''; !str1; // 式子的值是(true) 5. var str2 = 'abc'; !str2; // 式子的值是(false) 10. 0 && 100; // 式子的值是(false) 11. 0 && NaN; // 式子的值是(false) 12. 100 && 0; // 式子的值是(false) 13. 100 && NaN; // 式子的值是(false) 14. NaN && 0; // 式子的值是(false) 15. NaN && 100; // 式子的值是(false) 16. '' && 'abc'; // 式子的值是(false) 17. 'abc' && ''; // 式子的值是(false) 18. 'abc' && '456'; // 式子的值是(true) 19. true && true; // 式子的值是(true) 20. true && false; // 式子的值是(false) 21. false && true; // 式子的值是(false) 22. false && false; // 式子的值是(false) 23. 0 && undefined; // 式子的值是(false) 24. NaN && null; // 式子的值是(false) 25. 100 && 'abc'; // 式子的值是(true) ``` ## 习题9. 算术填空题(口算) ```javascript 6. var boo1 = true; // 式子的值是(true) !boo1; // 式子的值是(false) 7. var boo2 = false; // 式子的值是(false) !boo2; // 式子的值是(true) 8. var name; // 式子的值是(false) !name; // 式子的值是(true) 9. var cat = null; // 式子的值是(false) !cat; // 式子的值是(true) var obj; 27. 'abc' && obj.name; // 式子的值是(报错) 28. undefined && obj.name; // 式子的值是(false) 29. obj && obj.name; // 式子的值是(false) 30. 0 || 100; // 式子的值是(true) 31. 0 || NaN; // 式子的值是(false) 32. 100 || 0; // 式子的值是(true) 33. 100 || NaN; // 式子的值是(true) 34. NaN || 0; // 式子的值是(false) 35. NaN || 100; // 式子的值是(true) 36. '' || 'abc'; // 式子的值是(true) 37. 'abc' || ''; // 式子的值是(true) 38. 'abc' || '456'; // 式子的值是(true) 39. true || true; // 式子的值是(true) 40. true || false; // 式子的值是(true) 41. false || true; // 式子的值是(true) 42. false || false; // 式子的值是(false) 43. 0 || undefined; // 式子的值是(false) 44. NaN || null; // 式子的值是(false) 45. 100 || 'abc'; // 式子的值是(true) 46. 'abc' || undefined // 式子的值是(true) 47. var obj; 48. undefined || obj.name; // 式子的值是(false) ``` ## 习题10. 算术填空题(口算) ```javascript '1.23' == 1.23 ; // 式子的值是(true) 0 == false ; // 式子的值是(true) null == undefined ; // 式子的值是(true) NaN == NaN ; // 式子的值是(false) 1 == '1' ; // 式子的值是(true) 1 === '1' ; // 式子的值是(false) 1 + '2' === '1' + 2 ; // 式子的值是(true) 1 + true === false + 2 ; // 式子的值是(true) 1 + null == undefined + 1 ; // 式子的值是(false) 'a' - 'b' == 'b' - 'a' false; // 式子的值是(false) 4 == '4.00' ; // 式子的值是(true) 4 === '4.00' ; // 式子的值是(false) 0 == false ; // 式子的值是(true) 0 == null ; // 式子的值是(false) null == false ; // 式子的值是(false) ``` ## 习题11. 算术填空题(口算) ```JavaScript var score = 50; var grade = '7'; score + 10; // 结果是(60) score + '10'; // 结果是(5010) score + null; // 结果是(50) score + undefined; // 结果是(NaN) score + NaN; // 结果是(NaN) score + 10; // 结果是(60) score + '10'; // 结果是(5010) score + null; // 结果是(50) var num1 = 8; var num2 = '8'; num1 - num2; // 结果是(0) num1 - 'web01'; // 结果是(NaN) num1 - null; // 结果是(8) num1 - undefined; // 结果是(NaN) num1 - true; // 结果是(7) num1 - false; // 结果是(8) num1 - num2; // 结果是(0) ``` ## 习题12: 算术填空题 ```java var i = 1; var j = 1; var a = 10; var b = a + i++; var c = b + ++i + i++ + ++j; var d = a + b + c; // 代码运行之后, 求以下变量的值 i的值是(4) j的值是(2) a的值是(10) b的值是(11) c的值是(19) d的值是(40) ``` ## 习题13. 算术填空题 ```JavaScript var count = 60; console.log(--count); //控制台打印的值是(59) console.log(--count); //控制台打印的值是(58) console.log(--count); //控制台打印的值是(57) console.log(--count); //控制台打印的值是(56) console.log(--count); //控制台打印的值是(55) ``` ## 习题14. 自加运算符 ```JavaScript var i = 1; var j = 1; var a = 10; var b = a + i++; var c = b + ++i + i++ + ++j; var d = a + b + c; // 代码运行之后, 求以下变量的值 i的值是(4) j的值是(2) a的值是(10) b的值是(11) c的值是(19) d的值是(40) ``` ## 习题15. 计算题 计算以下式子的值, 写出解题步骤 ```html 结果:false ``` ## (二) 作业 ---------------------- ## (1) 编程题: ```javascript 有以下两个变量 num1 和 num2,若两个变量相加等于 15.3,则输出'运算正确',否则输出'运算错误' var num1 = 7.1; var num2 = 8.2; 答: var num1 = 7.1; var num2 = 8.2; if(num1 + num2 == 15.3){ console.log('运算正确'); } else{ console.log('运算错误'); } ``` ## (2) 编程题: 多重判断 作业要求: 在屏幕输入一个数字,确定后弹出相应的年龄段 ```html 年龄划分: “0-6岁为婴幼儿; 7-12岁为少儿; 13-17岁为青少年; 18-45岁为青壮年; 46-69岁为中年; 69岁以上为老年 var age = prompt(); if(age >0 && age <= 6){ console.log('婴幼儿'); } else if(age > 6 && age <= 12){ console.log('少儿'); } else if(age >12 && age <= 17){ console.log('青少年'); } else if(age >= 18 && age <= 45){ console.log('青壮年'); } else if(age > 45 && age <= 69){ console.log('中年'); } else{ console.log('老年'); } ``` ## (3) 编程题: 实现下面效果 显示一个弹框, 用户输入输入大于20或者小于10的数字就弹出'你猜对了', 否则弹出'你猜错了' ```html var num = prompt(); if(num > 20 || num < 10){ console.log('你猜对了'); } else{ console.log('你猜错了'); } ``` ## (4) 编程题: 购物车 实现类似购物车的编辑效果 购物车地址: http://fresh.huruqing.cn/cart ```html Document
x1
1
``` ## (5) 附加题 1. 自学for循环: 完成下面的编程题 ``` 运算并在网页上打印结果 有一篮苹果,两个两个的拿剩一个,三个三个的拿剩一个,四个四个的拿剩一个,五个五个的拿剩一个,六个六个的拿剩一个,七个七个的拿,能拿完,请问这篮子里有多少个苹果? ``` 2. 使用for循环计算1~100相加结果 ```javascript ```